home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / TextEncodingConverter.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  6.8 KB  |  128 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        TextEncodingConverter.p
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces. 
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1994-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT TextEncodingConverter;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __TEXTENCODINGCONVERTER__}
  27. {$SETC __TEXTENCODINGCONVERTER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC TextEncodingConverterIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __TEXTCOMMON__}
  37. {$I TextCommon.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN MAC68K}
  43. {$LibExport+}
  44.  
  45.  
  46. TYPE
  47.     TECPluginSignature                    = OSType;
  48.     TECPluginVersion                    = UInt32;
  49. { plugin signatures }
  50.  
  51. CONST
  52.     kTECSignature                = 'encv';
  53.     kTECUnicodePluginSignature    = 'puni';
  54.     kTECJapanesePluginSignature    = 'pjpn';
  55.     kTECChinesePluginSignature    = 'pzho';
  56.     kTECKoreanPluginSignature    = 'pkor';
  57.  
  58.  
  59. { converter object reference }
  60.  
  61. TYPE
  62.     TECObjectRef = ^LONGINT;
  63.     TECSnifferObjectRef = ^LONGINT;
  64.     TECPluginSig                        = OSType;
  65.     TECConversionInfoPtr = ^TECConversionInfo;
  66.     TECConversionInfo = RECORD
  67.         sourceEncoding:            TextEncoding;
  68.         destinationEncoding:    TextEncoding;
  69.         reserved1:                UInt16;
  70.         reserved2:                UInt16;
  71.     END;
  72.  
  73. { return number of encodings types supported by user's configuraton of the encoding converter }
  74. FUNCTION TECCountAvailableTextEncodings(VAR numberEncodings: ItemCount): OSStatus;
  75. { fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. }
  76. FUNCTION TECGetAvailableTextEncodings(VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  77. { return number of from-to encoding conversion pairs supported  }
  78. FUNCTION TECCountDirectTextEncodingConversions(VAR numberOfEncodings: ItemCount): OSStatus;
  79. { fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. }
  80. FUNCTION TECGetDirectTextEncodingConversions(VAR availableConversions: TECConversionInfo; maxAvailableConversions: ItemCount; VAR actualAvailableConversions: ItemCount): OSStatus;
  81. { return number of encodings a given encoding can be converter into }
  82. FUNCTION TECCountDestinationTextEncodings(inputEncoding: TextEncoding; VAR numberOfEncodings: ItemCount): OSStatus;
  83. { fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. }
  84. FUNCTION TECGetDestinationTextEncodings(inputEncoding: TextEncoding; VAR destinationEncodings: TextEncoding; maxDestinationEncodings: ItemCount; VAR actualDestinationEncodings: ItemCount): OSStatus;
  85. { get info about a text encoding }
  86. FUNCTION TECGetTextEncodingInternetName(textEncoding: TextEncoding; VAR encodingName: Str255): OSStatus;
  87. FUNCTION TECGetTextEncodingFromInternetName(VAR textEncoding: TextEncoding; encodingName: Str255): OSStatus;
  88. { create/dispose converters }
  89. FUNCTION TECCreateConverter(VAR newEncodingConverter: TECObjectRef; inputEncoding: TextEncoding; outputEncoding: TextEncoding): OSStatus;
  90. FUNCTION TECCreateConverterFromPath(VAR newEncodingConverter: TECObjectRef; {CONST}VAR inPath: TextEncoding; inEncodings: ItemCount): OSStatus;
  91. FUNCTION TECDisposeConverter(newEncodingConverter: TECObjectRef): OSStatus;
  92. { convert text encodings }
  93. FUNCTION TECClearConverterContextInfo(encodingConverter: TECObjectRef): OSStatus;
  94. FUNCTION TECConvertText(encodingConverter: TECObjectRef; inputBuffer: ConstTextPtr; inputBufferLength: ByteCount; VAR actualInputLength: ByteCount; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount): OSStatus;
  95. FUNCTION TECFlushText(encodingConverter: TECObjectRef; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount): OSStatus;
  96. { one-to-many routines }
  97. FUNCTION TECCountSubTextEncodings(inputEncoding: TextEncoding; VAR numberOfEncodings: ItemCount): OSStatus;
  98. FUNCTION TECGetSubTextEncodings(inputEncoding: TextEncoding; VAR subEncodings: TextEncoding; maxSubEncodings: ItemCount; VAR actualSubEncodings: ItemCount): OSStatus;
  99. FUNCTION TECGetEncodingList(encodingConverter: TECObjectRef; VAR numEncodings: ItemCount; VAR encodingList: Handle): OSStatus;
  100. FUNCTION TECCreateOneToManyConverter(VAR newEncodingConverter: TECObjectRef; inputEncoding: TextEncoding; numOutputEncodings: ItemCount; {CONST}VAR outputEncodings: TextEncoding): OSStatus;
  101.  
  102. FUNCTION TECConvertTextToMultipleEncodings(encodingConverter: TECObjectRef; inputBuffer: ConstTextPtr; inputBufferLength: ByteCount; VAR actualInputLength: ByteCount; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount; VAR outEncodingsBuffer: TextEncodingRun; maxOutEncodingRuns: ItemCount; VAR actualOutEncodingRuns: ItemCount): OSStatus;
  103. FUNCTION TECFlushMultipleEncodings(encodingConverter: TECObjectRef; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount; VAR outEncodingsBuffer: TextEncodingRun; maxOutEncodingRuns: ItemCount; VAR actualOutEncodingRuns: ItemCount): OSStatus;
  104. { international internet info }
  105. FUNCTION TECCountWebTextEncodings(locale: RegionCode; VAR numberEncodings: ItemCount): OSStatus;
  106. FUNCTION TECGetWebTextEncodings(locale: RegionCode; VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  107. FUNCTION TECCountMailTextEncodings(locale: RegionCode; VAR numberEncodings: ItemCount): OSStatus;
  108. FUNCTION TECGetMailTextEncodings(locale: RegionCode; VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  109. { examine text encodings }
  110. FUNCTION TECCountAvailableSniffers(VAR numberOfEncodings: ItemCount): OSStatus;
  111. FUNCTION TECGetAvailableSniffers(VAR availableSniffers: TextEncoding; maxAvailableSniffers: ItemCount; VAR actualAvailableSniffers: ItemCount): OSStatus;
  112. FUNCTION TECCreateSniffer(VAR encodingSniffer: TECSnifferObjectRef; VAR testEncodings: TextEncoding; numTextEncodings: ItemCount): OSStatus;
  113. FUNCTION TECSniffTextEncoding(encodingSniffer: TECSnifferObjectRef; inputBuffer: TextPtr; inputBufferLength: ByteCount; VAR testEncodings: TextEncoding; numTextEncodings: ItemCount; VAR numErrsArray: ItemCount; maxErrs: ItemCount; VAR numFeaturesArray: ItemCount; maxFeatures: ItemCount): OSStatus;
  114. FUNCTION TECDisposeSniffer(encodingSniffer: TECSnifferObjectRef): OSStatus;
  115. FUNCTION TECClearSnifferContextInfo(encodingSniffer: TECSnifferObjectRef): OSStatus;
  116.  
  117.  
  118. {$ALIGN RESET}
  119. {$POP}
  120.  
  121. {$SETC UsingIncludes := TextEncodingConverterIncludes}
  122.  
  123. {$ENDC} {__TEXTENCODINGCONVERTER__}
  124.  
  125. {$IFC NOT UsingIncludes}
  126.  END.
  127. {$ENDC}
  128.